package com.hxc.interest.service.impl;

import java.util.List;

import com.hxc.common.core.domain.entity.SysDictData;
import com.hxc.common.utils.DateUtils;
import com.hxc.enums.CareStatus;
import com.hxc.system.service.ISysDictTypeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hxc.interest.mapper.TReactionCareofMapper;
import com.hxc.interest.domain.TReactionCareof;
import com.hxc.interest.service.ITReactionCareofService;

/**
 * 反馈处理转交Service业务层处理
 *
 * @author hxc
 * @date 2021-08-27
 */
@Service
public class TReactionCareofServiceImpl implements ITReactionCareofService {

    @Autowired
    private TReactionCareofMapper tReactionCareofMapper;

    @Autowired
    private ISysDictTypeService dictTypeService;

    /**
     * 查询反馈处理转交
     *
     * @param id 反馈处理转交主键
     * @return 反馈处理转交
     */
    @Override
    public TReactionCareof selectTReactionCareofById(Long id) {
        return tReactionCareofMapper.selectTReactionCareofById(id);
    }

    /**
     * 查询反馈处理转交列表
     *
     * @param tReactionCareof 反馈处理转交
     * @return 反馈处理转交
     */
    @Override
    public List<TReactionCareof> selectTReactionCareofList(TReactionCareof tReactionCareof) {
        List<TReactionCareof> careovesList = tReactionCareofMapper.selectTReactionCareofList(tReactionCareof);
        //反馈事件类型字典
        List<SysDictData> sysDictDataList = dictTypeService.selectDictDataByType("hxc_content_type");
        if(sysDictDataList.size() > 0){
            careovesList.forEach((var) -> {
                //提交反馈事件
                if (var.getCareStatus() == CareStatus.DEFAULT.getCode()) {
                    var.setRemark("反馈了" + contentType(var.getContentType(),sysDictDataList) + "问题");
                } else if (var.getCareStatus() == CareStatus.AGREE.getCode()) {
                    var.setRemark("接受了您的转交");
                } else {
                    var.setRemark("拒绝了您的转交");
                }
            });
        }
        return careovesList;
    }

    //反馈事件类型处理
    public String contentType(Integer type,List<SysDictData> list) {
        String contentMsg = "";
        for (SysDictData var : list) {
            if (StringUtils.equals(var.getDictValue(),type.toString())) {
                contentMsg = var.getDictLabel();
                break;
            }
        }
        return contentMsg;
    }

    /**
     * 新增反馈处理转交
     *
     * @param tReactionCareof 反馈处理转交
     * @return 结果
     */
    @Override
    public int insertTReactionCareof(TReactionCareof tReactionCareof) {
        tReactionCareof.setCreateTime(DateUtils.getNowDate());
        return tReactionCareofMapper.insertTReactionCareof(tReactionCareof);
    }

    /**
     * 修改反馈处理转交
     *
     * @param tReactionCareof 反馈处理转交
     * @return 结果
     */
    @Override
    public int updateTReactionCareof(TReactionCareof tReactionCareof) {
        return tReactionCareofMapper.updateTReactionCareof(tReactionCareof);
    }

    /**
     * 批量删除反馈处理转交
     *
     * @param ids 需要删除的反馈处理转交主键
     * @return 结果
     */
    @Override
    public int deleteTReactionCareofByIds(Long[] ids) {
        return tReactionCareofMapper.deleteTReactionCareofByIds(ids);
    }

    /**
     * 删除反馈处理转交信息
     *
     * @param id 反馈处理转交主键
     * @return 结果
     */
    @Override
    public int deleteTReactionCareofById(Long id) {
        return tReactionCareofMapper.deleteTReactionCareofById(id);
    }
}
